/**
 * @description 用户 router
 */
const router = require('koa-router')()
const loginCheck = require('../middlewares/loginCheck')
const {
  isExist,
  register,
  login,
  clockIn,
  getClockInInfo,
  changeInfo,
  getInfo,
} = require('../controller/user')

router.prefix('/api/user')

/**
 * 检测用户名（电话号）是否存在
 * @param {string} account 用户名（电话）
 */
router.post('/isExist', async (ctx, next) => {
  const { account } = ctx.request.body
  ctx.body = await isExist(account)
})

/**
 * 用户注册
 * @param {string} account 用户名（电话号），必需
 * @param {string} password 密码，必需
 */
router.post(
  '/register',
  async (ctx, next) => {
    const { account, password } = ctx.request.body
    ctx.body = await register(account, password)
  }
)

/**
 * 用户登录
 * @param {string} account 用户名（电话）
 * @param {string} password 密码
 */
router.post('/login', async (ctx, next) => {
  const { account, password } = ctx.request.body
  ctx.body = await login(ctx, account, password)
})

/**
 * 修改个人信息
 */
router.patch('/changeInfo', loginCheck, async (ctx, next) => {
  const patchData = ctx.request.body
  ctx.body = await changeInfo(ctx, patchData)
})

/**
 * 获取当前用户的个人中心信息
 */
router.get('/info', loginCheck, async (ctx, next) => {
  ctx.body = await getInfo(ctx)
})

/**
 * 进行打卡
 */
router.post('/clockIn', loginCheck, async (ctx, next) => {
  ctx.body = await clockIn(ctx);
})

/**
 * 获取打卡信息
 */
router.get('/clockInInfo', loginCheck, async (ctx, next) => {
  ctx.body = await getClockInInfo(ctx);
})

module.exports = router
